import java.math.BigInteger;

class P10223PreCalc {

	public static void main(String[] args) {
		System.out.println("String[] array = new String[1001];");
		
		for (int k = 1; k < 301; k++) {
			System.out.println("array["+ k+"] = \"" + getCatalan(k) + "\";");
		}
		//    	
		// String line = readLn();
		// while (line != null) {
		// process(Long.parseLong(line));
		// line = readLn();
		// }
	}

	private static BigInteger getCatalan(long n) {
		return (C(2 * n, n).divide(new BigInteger(Long.toString(n + 1))));
	}

	private static void process(long l) {

	}

	static BigInteger fat(long r) {
		BigInteger fat = new BigInteger("1");
		for (long k = 1; k <= r; k++) {
			fat =  fat.multiply(new BigInteger(Long.toString(k)));
		}
		
		return fat;
	}

	static BigInteger minimize(long n, long r) {
		double numerator = 1;
		long one_denominator;
		long other_denominator;
//		if (n - r > r) {
			one_denominator = n - r;
			other_denominator = r;
//		} else {
//			one_denominator = r;
//			other_denominator = n - r;
//		}
		for (long k = one_denominator; k <= n; k++) {
			numerator *= k;
		}
		
		System.out.println(one_denominator);
		
		return (new BigInteger(Long.toString((long)numerator)).divide(new BigInteger(Long.toString(one_denominator)).multiply(fat(other_denominator))));
	}

	static BigInteger C(long n, long r) {
		return fat(n).divide(fat(r).multiply(fat(n - r)));
	}

	static String readLn() {
		String newLine = System.getProperty("line.separator");
		StringBuffer buffer = new StringBuffer();
		int car = -1;
		try {
			car = System.in.read();
			while ((car > 0) && (car != newLine.charAt(0))) {
				buffer.append((char) car);
				car = System.in.read();
			}
			if (car == newLine.charAt(0))
				System.in.skip(newLine.length() - 1);
		} catch (java.io.IOException e) {
			return (null);
		}
		if ((car < 0) && (buffer.length() == 0))
			return (null);
		return (buffer.toString()).trim();
	}

}